Using the Cpanel::Accounting Perl module
The Cpanel::Accounting Perl module is designed to give applications that use Perl an easy way of manipulating accounts. If you are connecting to a remote server you need to set the usessl varible to 1. This module requires the Net::SSLeay Perl module to be installed.
Cpanel::Accounting supports the following methods:
new - Create a new Cpanel::Accounting Object.
showversion - Shows what version of WebHost Manager the remote server is running.
listaccts - Lists currently active accounts.
listpkgs - Lists packages avalible for creation.
addpkg - Add a package.
editpkg - Edit a package.
createacct - Creates a new account on the server.
killacct - Terminates an account on the server.
suspend - Suspends an account on the server.
unsuspend - Unsuspends an account on the server.
Below is a sample Perl program.
#!/usr/bin/perl
BEGIN {
push (@INC,"/usr/local/cpanel");
}
use Cpanel::Accounting;
my($whm) = Cpanel::Accounting->new;
$whm->{host} = "localhost";
$whm->{user} = "<USERNAME HERE>";
$whm->{accesshash} = '<REMOTE ACCESS KEY HERE>';
$whm->{usessl} = 1;
my %ACCTS = $whm->listaccts();
if ($whm->{error} ne "") {
print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n";
exit;
}
#$name,$hasshell,$bwlimit,$quota,$ip,$cgi,$frontpage,$cpmod,$maxftp,$maxsql,$maxpop,$maxlst,$maxsub,$maxpark,$maxaddon
$response = $whm->editpkg("testpkg2",0,50000,5000,0,1,1,"bluelagoon",10,10,10,10,10,10,10);
if ($whm->{error} ne "") {
print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n";
exit;
}
foreach $acct (sort keys %ACCTS) {
@ACCTCT = @{$ACCTS{$acct}};
print "$acct @ACCTCT\n";
}
$response = $whm->killacct("<USERNAME TO TERMINATE>");
if ($whm->{error} ne "") {
print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n";
exit;
}
print $response;
my %PKGS = $whm->listpkgs();
if ($whm->{error} ne "") {
print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n";
exit;
}
foreach $package (sort keys %PKGS) {
@PKCTS = @{$PKGS{$package}};
print "$package @PKCTS\n";
}
$response = $whm->createacct("<DOMAIN NAME HERE>","<USERNAME HERE>","<PASSWORD HERE>","<PACKAGE HERE>");
if ($whm->{error} ne "") {
print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n";
exit;
}
print $response;
$response = $whm->suspend('<USERNAME HERE>');
if ($whm->{error} ne "") {
print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n";
exit;
}
print $response . "\n";
$response = $whm->unsuspend('<USERNAME HERE>');
if ($whm->{error} ne "") {
print "There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n";
exit
}
print $response . "\n";